/*
Derived HTML.
Copyright (C) 2009 dhudson@pushtechnology.com

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

 */

package org.dhtml;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

import org.htmlparser.util.ParserException;

/*
 * This is the command line interface entry point
 * 
 * Currently is file in and file out
 */

public class DHTML {

    /**
     * main
     * 
     * @param args
     */
    public static void main(String[] args) {
        try {
            if (args.length==1) {
                // Pump to std out
                File file = new File(args[0]);
                DHTMLNodeParser parser = new DHTMLNodeParser(file);
                for (int i = 0;i<parser.getNodeList().size();i++) {
                    System.out.println(parser
                        .getNodeList()
                        .elementAt(i)
                        .toHtml());
                }
            }
            else if (args.length==2) {
                // There is an output file.
                File inputFile = new File(args[0]);
                DHTMLNodeParser parser = new DHTMLNodeParser(inputFile);

                File outputFile = new File(args[1]);

                BufferedWriter writer =
                    new BufferedWriter(new OutputStreamWriter(
                        new FileOutputStream(outputFile)));

                StringBuilder builder = new StringBuilder();
                for (int i = 0;i<parser.getNodeList().size();i++) {
                    builder.append(parser.getNodeList().elementAt(i).toHtml());
                }

                writer.write(builder.toString());
                writer.close();
            }
            else {
                // I have no idea
                System.out.println("DHTML Usage:");
                System.out.println("input file <output file>");
                System.out.println("");
                System.out
                    .println("If the output file is not specified, then STDOUT will be used.");
                System.out.println("");
                System.out.println("Regards: The dhtml team.");
            }
        }
        catch (DHTMLException ex) {
            ex.printStackTrace();
        }
        catch (ParserException ex) {
            ex.printStackTrace();
        }
        catch (IOException ex) {
            ex.printStackTrace();
        }
    }
}
